History of Computers

# # # # # # # # History of Computer Hardware # # # # # # # #



Computing at Ancient Times:


Since the ancient times man has been using his fingers for computing and hence human fingers represent the most primitive computing device. Before the invention of zero the computing was not very easy and people did use the bowlful of pebbles to perform the computations. For example, if you want to compute 6 × 11 then you should make eleven groups of pebbles such that each group contains six pebbles; now mix all these pebbles to form a single group, and count; and you get the answer. In China the people did use the counting boards and abacuses to perform the computations.



Wilhelm Schickhard's Very First Automatic Machine:


The very first automatic computer was built in 1623 by Wilhelm Schickhard (1592 - 1635). He was professor at the University of Tubingen. However, it went unnoticed. It was followed by Pascal’s machine built by French scientist Blaise Pascal (1623-1662). It was a primitive calculator. Pascal built this device in 1642 at the tender age of 19. Pascal’s machine could do only addition and subtraction. Though Pascal’s machine is now obsolete, an odometer (i.e., milometer) in you vehicle or electric meter in your home still makes use of Pascal’s machine in modified form. Pascal’s machine marks the beginning of the era of Mechanical computers (1642-1945), also known as “zeroth generation of computers.”



Baron Gottfried Wilhelm von Leibniz, Charles Babbage, Difference Engine, Analytical Engine:


Thirty years later, the legendary German mathematician Baron Gottfried Wilhelm von Leibniz (1646-1716) built another computing device that could add, subtract, divide, and multiply. After an interval of 150 years, a professor of mathematics at the University of Cambridge, Charles Babbage (1792-1871), designed the “difference engine.” Babbage proposed this machine to prepare the error-free mathematical tables. This difference machine could run only one (built in) algorithm. Babbage then designed the “analytical engine” which was the very first programmable computer.



Anaylitcal Engline, Store, Mill, Input Section, Output Section, Ada Lovelace, First Programmer:


The analytical engine had four components: the store (memory), the mill (computation unit), the input section (punched card reader), and the output section (punched and printed output). One could run any algorithm on it, but this machine was never put to work. It was a mechanical device that employed thousands of poorly fabricated toothed wheels which used to break frequently. Because this was a programmable computer, Babbage appointed Ada Lovelace to write the programs for this machine. Thus Ada Lovelace (daughter of poet Byron) became the first programmer in the world. Despite limited success of these machines, it should be noted that modern digital computers inherit some important features of their design from Babbage’s analytical engine.



Konrad Zuse, John Atanasoff, George Stibbitz, Jogging the Memory:


In 1930s, a German engineering student Konrad Zuse built a series of calculating machines and, reportedly, he was unaware of Babbage’s work. However, his machines were destroyed in the bombing on Berlin in 1944 (One more victim of the second world war!). A little later, two Americans, John Atanasoff of Iowa State College and George Stibbitz of Bell Labs designed the calculators. Atanasoff employed binary arithmetic in his calculators and used capacitors for memory. These capacitors were periodically refreshed to prevent the leakage of charge, the process, he called, “jogging the memory.” It should be noted that modern dynamic RAM has inherited this rite of jogging the memory.



Howard Aiken, Mark I, Punched Paper Tape, Mark II, Zeroth Generation Computers:


Howard Aiken built the Mark I at Harvard in 1944. Mark I’s design was similar to Babbage’s analytical engine, however, it employed the electromechanical relays instead of ill fated toothed wheels. It used punched paper tape for input and output. Aiken then began work on Mark II but before it was complete, the relay computers were almost obsolete and electronic computers arrived on the scene. Mark II marks the end of the era of mechanical computers, the zeroth generation.



Vacuum Tubes, First Generation Computers, First Digital Electronic Computer, COLOSSUS:


Most of the computers that were built in the period 1943 to 1955 made use of vacuum tubes. These computers are known as the first generation computers. In 1943 British government built the very first digital electronic computer COLOSSUS. Its purpose was to decode the secret military messages. The COLOSSUS remained military secret for the next thirty years.



John Mauchley, J. Presper Eckert, ENIAC, Maurice Wilkes, EDSAC, JOHNIAC, ILLIAC, MANIAC, WEIZAC:


In the same year (i.e., 1943) John Mauchley and J. Presper Eckert began work on ENIAC (Electronic Numerical Integrator And Computer) as a war effort. It was huge computer consisting of 18000 vacuum tubes and 1500 relays. The ENIAC was ready to use in 1946 but till then war was over. However, the number of researchers derived the inspiration from ENIAC including Maurice Wilkes of Cambridge University who built EDSAC in 1949, followed by the JOHNIAC at the Rand Corporation, the ILLIAC at the University of Illinois, the MANIAC at the Los Alamos Laboratory, and the WEIZAC at the Weizman Institute in Israel.



Eckert, Mauchley, EDVAC, John von Neumann, IAS, von Neumann machine, EDSAC:


Eckert and Mauchley then began work on EDVAC (Electronic Discrete Variable Automatic Computer) but left the project half cooked to start the Eckert-Mauchley Computer Corporation which is today’s Unisys Corporation. One of the members of ENIAC-team, John von Neumann began work on the IAS machine, his own version of EDVAC machine, at the IAS (Institute for Advanced Studies) Princeton. Neumann insisted that program should be represented in digital form in main memory along with the data. The machine built according to this design is called as “von Neumann machine.” The EDSAC was the very first von Neumann machine. The triumphant IAS machine was also a von Neumann machine and it successfully demonstrated the capabilities of von Neumann machine.



IBM 701, 704, 709, Last Vacuum Tube Computer:


The IBM (International Business Machines) began producing the 701 computer in 1953, it was followed by 704 computer in 1957, and by 709 computer in 1958. The 709 computer was the last vacuum tube computer produced by IBM. The trouble with a vacuum tube is that it can go defunct at any moment crashing the program. It also consumes large power and generates large amount of heat.



Second Generation Computers, TRANSISTORS, John Bardeen, Walter Brattain, William Shockley, TX-0, TX-2, MIT:


The period of 1955 to 1965 is known as the period of the second generation computers. These computers made use of transistors instead of vacuum tubes. A TRANSISTOR (TRANsfer of SIgnal across resiSTOR), invented by John Bardeen, Walter Brattain, and William Shockley, brought about revolutionary changes in electronic, and hence, computer industry. The trio bagged the Nobel prize in Physics for this invention. The TX-0 (Transistorized eXperimental computer 0) was the very first transistor-based computer, built at the MIT’s (Massachusetts Institute of Technology) Lincoln Laboratory. The TX-0 was followed by more powerful TX-2.



Kenneth Olsen, Lincoln Laboratory, DEC, PDP-1, PDP-8, Single Bus, Omnibus:


In 1957, one of the researchers at the Lincoln Laboratory, Kenneth Olsen, formed a company DEC (Digital Equipment Corporation) to manufacture the PDP-1, the clone of TX-0. The PDP-1 actually appeared in 1961, it was the first minicomputer. The students at MIT wrote a program for PDP-1 so as to play a spacewar, it was the very first video game. The PDP-1 was followed by PDP-8, its salient feature was that it made use of single bus, the omnibus. A bus is a collection of wires (connected to various components) in computer through which signals and data travel. Earlier there used to be a separate bus (say, taxi) for each component. Today, an omnibus is a common feature of all small computers.



IBM 7094, 1401, 6600, CDC, Burroughs, B5000, Algol 60:


IBM’s 7094 and 1401 machines were quite popular in this period. The 6600 machine, with remarkable number crunching facilities, introduced in 1964 by CDC (Control Data Corporation), also became very popular. The B5000 machine, introduced by Burroughs, was remarkable in that its hardware was designed to run the programs in Algol 60 efficiently.



Third Generation Computers, IC, IBM 360, Mainframe, First IC Based Computer, Multiprogramming:


The period from 1965 to 1980 is known as the period of the third generation computers. The computers built in this period made use of integrated circuits. A typical IC chip (of the size of postal stamp) consists of thousands of transistors, capacitors, and resistors. IBM’s mainframe computer 360 was the very first IC-based computer. The 360 introduced the multiprogramming. In multiprogramming number of programs are loaded in the memory at the same time, so that if one program is waiting for some input then other can start the execution. The 360 was capable of simulating other machines using a software layer.



Fourth Generation Computers, VLSI, Seymour Cray, CDC 6600, Parallel Architecture, Cray Research, Cray-1, Cray-2, Cray-3:


The period since 1980 to date is called as the period of fourth generation computers. The main feature of this period is the dominance of personal computers and emergence of VLSI (Very Large Scale Integration). The VLSI made it possible to put millions of components on a single chip. This period is also marked by very powerful supercomputers, notably the computers designed and built by Seymour Cray. He designed the first computer (CDC 6600) that used parallel architecture. Then he went ahead and formed his own company “Cray Research” that built Cray-1, the first supercomputer. Cray-1 was followed by Cray-2 and Cray-3.



Vijay Bhatkar, PARAM 10000, CDAC, First Supercomputer of India:


India is also not far behind in the race of supercomputing. In 1998 Dr. Vijay Bhatkar, Indian computer scientist and the then Director of CDAC (Center for Development of Advanced Computing, Pune), made a supercomputer - PARAM 10000 - for India. It served the needs of India and also few other developing countries who were denied the supercomputers by USA.



# # # # # # # # History of Programming Languages # # # # # # # #



FORTRAN, First High Level Language, John Backus:


More than 2500 documented programming languages are developed to date. In this section we will consider only few important, high level languages. The very first successful, high level language was FORTRAN (FORmula TRANslation). It was developed by a team of computer scientists headed by John Backus in the period 1954-1957, working at IBM. FORTRAN was ready to use in 1957. Assembly language programmers did not believe that it would work, but it worked, and worked well. FORTRAN was mainly developed for performing engineering computations. Even today it is favorite among engineers.



John McCarthy, LISP, AI, ALGOL, COBOL, CODASYL, ALGOL 60, APL, FORTRAN IV, SNOBOL:


In 1958, John McCarthy began work on the language LISP (LISt Processing). LISP was to be used in Artificial Intelligence (AI). In the same year, specification for ALGOL (ALGOrithmic Language) also appeared. In the year 1959, LISP version 1.5 appeared. In the same year, the language COBOL (COmmon Business Oriented Language) also appeared. It was developed by CODASYL (Conference On DAta SYstems and Languages) mainly for business applications and it was quite successful in its mission. Even today business people use COBOL based applications. In 1960, ALGOL 60 appeared which turned out to be the first block structured language. ALGOL 60 became quite popular in Europe. In the same year, Kenneth Iverson began work on APL (A Programming Language). In 1962 APL’s documentation was complete, FORTRAN IV appeared, and work began on SNOBOL (StriNg Oriented symBOlic Language).



APL\360, PL/1, John Kemeny, Thomas Kurtz, BASIC, Dartmouth University, BCPL, Martin Richards, CPL, LOGO, SNOBOL 4, ALGOL 68, Monster, ANSI, Niklaus Wirth, Pascal:


In 1964, APL\360 was implemented and PL/1 was released. In the same year, John Kemeny and Thomas Kurtz presented the language BASIC (Beginners All inclusive Simple Instruction Code) at Dartmouth University. In 1965, SNOBOL 3 appeared. In 1967, BCPL (Basic Combined Programming Language) appeared which was developed by Martin Richards. It was simplified version of CPL (Combined Programming Language). In 1966, FORTRAN 66 and LISP 2 appeared. In the same year, work on LOGO began. In 1967, SNOBOL 4 appeared. In 1968, ALGOL 68 - popularly called monster - appeared. It turned out to be terribly difficult to implement. In the same year, ANSI definition of COBOL became available and Niklaus Wirth began work on Pascal. ANSI stands for America’s National Standards Institute.



B, BCPL, Kenneth Thompson, PROLOG, SmallTalk, Xerox, Alan Kay, OOP:


In 1970, language B - which was based on BCPL - appeared, it was developed by Kenneth Thompson. Name “B” was derived from the name of its parent language BCPL (first letter of BCPL was chosen as name of this offspring). In the same year: work on PROLOG (PROgramming in LOGic) began and work on SmallTalk also began at Xerox led by Alan Kay. PROLOG was to be used in Artificial Intelligence. SmallTalk is considered as first truly object-oriented language. Object-oriented language is used for OOP. OOP stands for Object-Oriented Programming.



Dennis Ritchie, C, PROLOG, Alain Colmerauer, Phillip Roussel, Design System Language, PostScript, MUMPS, AWK, Aho, Weinberger, Kernighan, FORTRAN 77:


In 1972, Dennis Ritchie produced C. In the same year, implementation of PROLOG by Alain Colmerauer and Phillip Roussel appeared. In 1976, the Design System Language - generally considered to be forerunner of PostScript - appeared. In 1977, the ANSI standard for MUMPS (Massachusetts general hospital Utility Multi-Programming System) appeared. In 1978, text processing language AWK appeared. It was named after its developers Aho, Weinberger, and Kernighan. In the same year, ANSI standard for FORTRAN 77 also appeared.



SmallTalk-80, MODULA-2, ISO Pascal, C++, OOP, Bjarne Stroustrup, Ada, Jean Ichbiah, Borland, Turbo Pascal:


In 1980, SmallTalk-80 appeared. In the same year MODULA-2 also appeared. MODULA (MODUlar LAnguage)  based on Pascal  was developed by Niklaus Wirth for systems programming. In 1982, ISO Pascal and PostScript appeared. ISO stands for International Standards Organization. In 1983: Ada appeared, Microsoft released the C compiler for personal computers, and the first implementation of C++ appeared. Ada was designed by a committee headed by Jean Ichbiah for Department Of Defense, USA. C++ is object-oriented version of C and it was developed by Bjarne Stroustrup. In the same year, Borland’s Pascal compiler for personal computers - Turbo Pascal - arrived, it took the world of personal computing by storm because of its user-friendliness.



PERL, Larry Wall, Oberon, Niklaus Wirth, Python, Guido Van Rossum, Java, James Gosling, PHP, Rasmus Lerdorf, UML, Grady Booch, Jim Rumbaugh, Ivar Jacobson, C#, Anders Hejlsberg, Scala, Scala Lang:


In 1987, PERL (Practical Extracting and Report Language) appeared and it was developed by Larry Wall. In 1988, Oberon appeared which was developed by Niklaus Wirth. In 1989, ANSI C specification was published. In 1991, Python appeared which was developed by Guido Van Rossum. In 1994, Java appeared which was developed by James Gosling and others working at Sun Microsystems. In 1995, JavaScript appeared which was developed by Brendan Eich working at Netscape. In the same year, PHP (Personal home pages Hypertext Processor) appeared which was developed by Rasmus Lerdorf. In 1996, UML (Unified Modelling Language) appeared which was developed by Grady Booch, Jim Rumbaugh, and Ivar Jacobson. In 2000, C# (pronounced C sharp) appeared which was developed by Anders Hejlsberg working at Microsoft. In 2004, Scala appeared which was developed by Scala Lang. It is pure object-oriented language.



# # # # # # # # History of Programming Language C # # # # # # # #



History of UNIX, Operating System UNIX, Bell Laboratories, Multics, PDP-7, AT&T, Assembly Language:


The early history of C is closely parallel to the history of UNIX. This is because C was specifically developed to write the operating system UNIX. The operating system UNIX was introduced by Bell Laboratories, in 1969, as an alternative to Multics operating system for the PDP-7 computer. The original version of UNIX was written in assembly language, but the programs written in assembly language are less portable than the programs written in high level language, hence, the people at AT&T decided to rewrite the operating system in high level language. This decision was followed by the hunt of a suitable language, but there was no suitable high level language that would offer benefits of high level language and also permit the bit level programming.



Kenneth Thompson, BCPL, C, Dennis Ritchie:


During the same period (i.e., in 1970), Kenneth Thompson developed a language for systems programming which was named as B after its parent language BCPL (i.e., BCPL’s first letter was selected as a name of the new language, BCPL was developed by Martin Richards in 1967). In 1972, C made its first appearance, as an improved version of B, and it was developed by Dennis Ritchie. The name “C” is derived from “B” (i.e., in alphabets the letter C follows the letter B, or in the name BCPL the letter C follows the letter B).



Ritchie, Bell Labs, Compiler for C, Standard Types, The C Programming Language, Brian Kernighan, Dennis Ritchie, K & R, ANSI C, ISO C, X3J11, C90, C99:


Ritchie, with group of researchers working at Bell labs, also created a compiler for C. Unlike B, C is equipped with an extensive collection of standard types. In 1973, the new version of UNIX was released in which over 90% of the source code of UNIX was rewritten in C, which added to its portability. With the arrival of this new version of UNIX, computing community realized the power of C. Following the publication of book “The C Programming Language” in 1978 by Brian Kernighan and Dennis Ritchie, C was shot into fame. This book is affectionately termed as K & R. C is standardized by ANSI (American National Standards Institute) and ISO (International Standards Organization) and these versions are known as ANSI C and ISO C respectively. In 1983, ANSI formed a committee, named X3J11, to create a standard specification of C. In 1989, the standard was ratified as ANSI X3.159-1989 “Programming Language C.” This version of C is termed as ANSI C, Standard C, or just, C89. In 1990, the ANSI C standard (with a few minor modifications) was adopted by the ISO as ISO/IEC 8999:1990. This version is popularly known as C90. In 1995, C89 was modified and international character set was added to it. In 1999, it was further modified and published as ISO 9899:1999. This standard is popularly termed as “C99.” In 2000, it was adopted as an ANSI standard.



Click Here to Go To Top of The Page